import { $post, $get, $fileDownLoad2 } from '@/api/request'
import { eqptPreUrl } from '@/views/children/dcenter/js/constants'

// 新增中间件设备
export function addMiddleEqptData (data) {
  return $post({
    url: `${eqptPreUrl}/middleEqptData/addMiddleEqptData`,
    data
  })
}

// 删除中间件设备
export function deleteMiddleEqpt (middleEqptId) {
  return $post({
    url: `${eqptPreUrl}/middleEqptData/delete/${middleEqptId}`
  })
}

// 编辑中间件设备
export function updateMiddleEqptData (data) {
  return $post({
    url: `${eqptPreUrl}/middleEqptData/modifyMiddleEqptData`,
    data
  })
}

// 查询中间件设备
export function queryMiddleEqptData (data) {
  return $post({
    url: `${eqptPreUrl}/middleEqptData/page`,
    data
  })
}

// 获取关联设备树形数据
export function getCorrelationEqptTreeData () {
  return $get({
    url: `${eqptPreUrl}/equipment/tree/getEqptDataList`
  })
}

// 获取楼栋、楼层、楼层区域、房间
export function getListByTag (data) {
  return $get({
    url: `${eqptPreUrl}/scene/floor/getListByTag`,
    data
  })
}

// 删除楼栋
// /equipment/feign/deleteFloorById
export function deleteFloorById ({ floorId, tag }) {
  return $post({
    url: `${eqptPreUrl}/equipment/feign/deleteFloorById?floorId=${floorId}&tag=${tag}`
  })
}

// 获取设备类型
export function getAppEqptTypeList () {
  return $get({
    url: `${eqptPreUrl}/scene/eqptJudge/getAppEqptTypeList`
  })
}

// 设备管理 - 获取设备列表
// 获取设备列表
export function getEquipmentList (data) {
  return $post({
    url: `${eqptPreUrl}/equipment/page`,
    data
  })
}

// 设备数据|新增设备
// /equipment/addEqptData
export function addEqptData (data) {
  return $post({
    url: `${eqptPreUrl}/equipment/addEqptData`,
    data
  })
}

// /equipment/delete/{eqptId}
// 设备数据|设备删除(逻辑删除)
export function delEqptData (eqptId) {
  return $post({
    url: `${eqptPreUrl}/equipment/delete/${eqptId}`
  })
}

// 设备管理-修改属性信息  编辑后的保存
export function modifyEqpt (data) {
  return $post({
    url: `${eqptPreUrl}/equipment/modifyAttribute`,
    data
  })
}

// /equipment/downloadTemplate
// 设备管理 | 下载导入模板
export function downDeviceTemplate () {
  return $fileDownLoad2({
    url: `${eqptPreUrl}/equipment/downloadTemplate`,
    method: 'post',
    filename: '设备管理导入模板.xls'
  })
}

// 批量导入
// /equipment/batchImport
export function importDevice (data) {
  return $post({
    url: `${eqptPreUrl}/equipment/batchImport`,
    data
  })
}

// 获取设备类型
// export function getEqptType () {
//   return $get({
//     url: `${eqptPreUrl}/eqptJudge/getAppEqptTypeList`
//   })
// }

// /eqptType/list
// 获取设备类型
export function getDeviceTypeList (data) {
  return $post({
    url: `${eqptPreUrl}/eqptType/list`,
    data
  })
}

/*
  设备类型 | 获取设备类型列表
  /eqptType/page
*/
export function getDeviceTypePage (data) {
  return $post({
    url: `${eqptPreUrl}/eqptType/page`,
    data
  })
}
// 设备类型|保存
// /eqptType/save
export function saveDeviceType (data) {
  return $post({
    url: `${eqptPreUrl}/eqptType/save`,
    data
  })
}

// 设备类型|设备类型删除(逻辑删除)
// /eqptType/delete/{typeId}
export function deleteDeviceType (typeId) {
  return $post({
    url: `${eqptPreUrl}/eqptType/delete/${typeId}`
  })
}

// 设备标签|分页列表查询
// /eqptLabel/page
export function getLabelList (data) {
  return $post({
    url: `${eqptPreUrl}/eqptLabel/page`,
    data
  })
}

// /eqptLabel/list
// 设备标签 不分页列表
export function getLabelSelect (data) {
  return $post({
    url: `${eqptPreUrl}/eqptLabel/list`,
    data
  })
}

// 设备标签类型下拉数据
export function getLabelTypeList (data) {
  return $post({
    url: `${eqptPreUrl}/eqptLabelType/list`,
    data
  })
}

// 设备标签树形数据
export function getEqptLabelTreeList (data) {
  return $post({
    url: `${eqptPreUrl}/eqptLabel/tree/getTreeEqptLabelList`,
    data
  })
}

// 设备标签类型新增或修改
export function addUpdateLabelType (data) {
  return $post({
    url: `${eqptPreUrl}/eqptLabelType/add`,
    data
  })
}

// 设备标签类型新增或修改
export function getTagTypeTableData (data) {
  return $post({
    url: `${eqptPreUrl}/eqptLabelType/page`,
    data
  })
}

// 设备标签类型行内删除
export function deleteTagType (labelId) {
  return $post({
    url: `${eqptPreUrl}/eqptLabelType/delete/${labelId}`
  })
}

// 设备标签|获取设备标签编号
// /eqptLabel/getLabelNo
export function getLabelNo () {
  return $post({
    url: `${eqptPreUrl}//eqptLabel/getLabelNo`
  })
}

// /eqptLabel/add
// 设备标签|修改或添加设备标签信息
export function addDeviceLabel (data) {
  return $post({
    url: `${eqptPreUrl}//eqptLabel/add`,
    data
  })
}

// /eqptLabel/delete/{labelId}
// 设备标签|设备标签删除(逻辑删除)
export function deleteDeviceLabel (labelId) {
  return $post({
    url: `${eqptPreUrl}//eqptLabel/delete/${labelId}`
  })
}

// 获取设备品名
export function getProductNameList (data) {
  return $post({
    url: `${eqptPreUrl}/eqptJudge/getProductNameList`,
    data
  })
}

// 设备数据|新增设备
// export function addEqptData (data) {
//   return $post({
//     url: `${eqptPreUrl}/equipment/addEqptData`,
//     data
//   })
// }

// 获取设备类型
// 获取租户可用的设备类型详细
export function getEqptTitle (data) {
  return $post({
    url: `${eqptPreUrl}/eqptJudge/getEqptTypeDetail`,
    data
  })
}
// 设备数据表-拉取并清洗设备信息
export function pullEqptData (data) {
  return $post({
    url: `${eqptPreUrl}/equipment/pullEqptData`,
    data
  })
}

// 上传
export function uploadImage (data) {
  return $post({
    url: `${eqptPreUrl}/scene/upload`,
    data
  })
}

// 获取图片资源
// /scene/getFileSource
export function getImgSource (fileName) {
  return $get({
    url: `${eqptPreUrl}/scene/getFileSource?fileName=${fileName}`,
    method: 'get',
    responseType: 'blob'
  })
}

// 添加楼层信息
export function floorAdd (data) {
  return $post({
    url: `${eqptPreUrl}/scene/floor/add`,
    data
  })
}

// 修改楼层信息
export function floorUpdate (data) {
  return $post({
    url: `${eqptPreUrl}/scene/floor/update`,
    data
  })
}

// 修改楼层信息
export function getEqptJudgeList (data) {
  return $post({
    url: `${eqptPreUrl}/eqptJudge/page`,
    data
  })
}

// 设备管理 - 获取设备列表一号楼
// 获取设备列表
export function getEquipmentListOne (data) {
  return $get({
    url: `/classroom/device/listPage`,
    data
  })
}

// 封装 限制字符长度 30 byte
// 1参数：输入的值  2参数：要限制输入的字符个数
// export function limitstr (strval, strNum) {
//   let bre = /[\x0-\xff]/
//   let re = ''
//   let strleng = strval.length
//   // 返回字符串的总字节数
//   let byteLeng = strval.replace(/[^\x0-\xff]/g, '**').length
//   if (byteLeng <= strNum) return strval
//   for (let i = 0, byteNum = 0; i < strleng; i++) {
//     var byte = strval.charAt(i)
//     if (bre.test(byte)) {
//       byteNum++ // 单字节字符累加1
//     } else {
//       byteNum += 2 // 非单字节字符累加2
//     }
//     if (byteNum <= strNum) { re += byte } else { return re }
//   }
// }
